home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr26 / netprog.zip / NETPROG.TAR / net / sockopt.c < prev    next >
C/C++ Source or Header  |  1989-12-17  |  1KB  |  42 lines

  1. /*
  2.  * Example of getsockopt() and setsockopt().
  3.  */
  4.  
  5. #include    <sys/types.h>
  6. #include    <sys/socket.h>        /* for SOL_SOCKET and SO_xx values */
  7. #include    <netinet/in.h>        /* for IPPROTO_TCP value */
  8. #include    <netinet/tcp.h>        /* for TCP_MAXSEG value */
  9.  
  10. main()
  11. {
  12.     int    sockfd, maxseg, sendbuff, optlen;
  13.  
  14.     if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  15.         err_sys("can't create socket");
  16.  
  17.     /*
  18.      * Fetch and print the TCP maximum segment size.
  19.      */
  20.  
  21.     optlen = sizeof(maxseg);
  22.     if (getsockopt(sockfd, IPPROTO_TCP, TCP_MAXSEG, (char *) &maxseg,
  23.                 &optlen) < 0)
  24.         err_sys("TCP_MAXSEG getsockopt error");
  25.     printf("TCP maxseg = %d\n", maxseg);
  26.  
  27.     /*
  28.      * Set the send buffer size, then fetch it and print its value.
  29.      */
  30.  
  31.     sendbuff = 16384;    /* just some number for example purposes */
  32.     if (setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *) &sendbuff,
  33.                             sizeof(sendbuff)) < 0)
  34.         err_sys("SO_SNDBUF setsockopt error");
  35.  
  36.     optlen = sizeof(sendbuff);
  37.     if (getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *) &sendbuff,
  38.                             &optlen) < 0)
  39.         err_sys("SO_SNDBUF getsockopt error");
  40.     printf("send buffer size = %d\n", sendbuff);
  41. }
  42.